using System;
using System.Collections;
using System.Collections.Generic;

namespace Neturion.Dados
{
    public class Banco
    {
        private int _bancoId;
        private string _codigoCompensacao;
        private string _descricao;
        private string _homePage;
        private IList _listaAgencias;
        private DateTime? _inicioVigencia;
        private DateTime? _fimVigencia;
        private NeturionLog _neturionLog;


        public Banco()
        {
            _listaAgencias = new List<Agencia>();
        }

        public virtual int BancoId
        {
            get { return _bancoId; }
            set { _bancoId = value; }
        }

        public virtual string CodigoCompensacao
        {
            get { return _codigoCompensacao; }
            set { _codigoCompensacao = value; }
        }

        public virtual string Descricao
        {
            get { return _descricao; }
            set { _descricao = value; }
        }

        public virtual string HomePage
        {
            get { return _homePage; }
            set { _homePage = value; }
        }

        public virtual IList ListaAgencias
        {
            get { return _listaAgencias; }
            set { _listaAgencias = value; }
        }

        public virtual DateTime? InicioVigencia
        {
            get { return _inicioVigencia; }
            set { _inicioVigencia = value; }
        }

        public virtual DateTime? FimVigencia
        {
            get { return _fimVigencia; }
            set { _fimVigencia = value; }
        }

        public virtual NeturionLog NeturionLog
        {
            get { return _neturionLog; }
            set { _neturionLog = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual void AdicionarAgencia(Agencia agencia)
        {
            agencia.Banco = this;
            ListaAgencias.Add(agencia);
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual void RemoverAgencia(Agencia agencia)
        {
            ListaAgencias.Remove(agencia);
        }
    }
}